<?php
App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');
App::uses('Emprestimo', 'Model');
class RelatoriosController extends AppController {
	var $components = array('RequestHandler');
	var $uses = array('Emprestimo', 'Aluno', 'Itensemprestimo', 'Categoria', 'Localizacao', 'Equipamento');
	
	

/**
 * index method
 *
 * @return void
 */
	public function lista_equipamentos() {
		$this->Equipamento->recursive = 0;
		$this->set('equipamentos', $this->paginate());
	}

	function emprestimos_aluno(){
		$alunos = $this->Aluno->find('list', array('order' => 'Aluno.nome'));
		$this->set(compact('alunos'));		
		
	}
	function emprestimos_aluno_pdf(){
		if($this->data){
			$aluno = $this->Aluno->read(null, $this->data['Relatorio']['aluno_id']);
			$itensEmprestimos = $this->Itensemprestimo->find('all', array(
					'conditions' => array(
							'Emprestimo.aluno_id' => $this->data['Relatorio']['aluno_id'],
							'Emprestimo.situacao' => array('E', null) 
				)));
				
			$this->set(compact('aluno', 'itensEmprestimos'));
		}
		$this->layout = 'pdf'; //this will use the pdf.ctp layout
		$this->render();
	}
	
	
	function equipamentos_atraso(){
		$equipamentos = $this->Equipamento->find('list', array('order' => 'Equipamento.descricao'));
		$this->set(compact('equipamentos'));
	
	}
	function equipamentos_atraso_pdf(){
		if($this->data){
			$equipamento = $this->Equipamento->read(null, $this->data['Relatorio']['equipamento_id']);
			$itensEmprestimos = $this->Itensemprestimo->find('all', array(
					'conditions' => array(
							'Itensemprestimo.equipamento_id' => $this->data['Relatorio']['equipamento_id'],
							'Emprestimo.situacao' => array('E', null),
							'Emprestimo.data_entrega <' => 'NOW()'
					)));
	
			$this->set(compact('equipamento', 'itensEmprestimos'));
		}
		$this->layout = 'pdf'; //this will use the pdf.ctp layout
		$this->render();
	}
	
	function equipamentos_emprestados(){
		$equipamentos = $this->Equipamento->find('list', array('order' => 'Equipamento.descricao'));
		$this->set(compact('equipamentos'));
	
	}
	function equipamentos_emprestados_pdf(){
		if($this->data){
			$this->Itensemprestimo->recursive=2;
			$equipamento = $this->Equipamento->read(null, $this->data['Relatorio']['equipamento_id']);
			$itensEmprestimos = $this->Itensemprestimo->find('all', array(
					'conditions' => array(
							'Itensemprestimo.equipamento_id' => $this->data['Relatorio']['equipamento_id'],
							'Emprestimo.situacao' => array('E', null)
					)));
	
			$this->set(compact('equipamento', 'itensEmprestimos'));
		}
		$this->layout = 'pdf'; //this will use the pdf.ctp layout
		$this->render();
	}
	
	function equipamentos_historico(){
		$equipamentos = $this->Equipamento->find('list', array('order' => 'Equipamento.descricao'));
		$this->set(compact('equipamentos'));
	
	}
	function equipamentos_historico_pdf(){
		if($this->data){
			$this->Itensemprestimo->recursive=2;
			$equipamento = $this->Equipamento->read(null, $this->data['Relatorio']['equipamento_id']);
			$itensEmprestimos = $this->Itensemprestimo->find('all', array(
					'conditions' => array(
							'Itensemprestimo.equipamento_id' => $this->data['Relatorio']['equipamento_id']
					)));
	
			$this->set(compact('equipamento', 'itensEmprestimos'));
		}
		$this->layout = 'pdf'; //this will use the pdf.ctp layout
		$this->render();
	}
	
	function equipamentos_categoria_localizacao(){
		$categorias = $this->Categoria->find('list', array('order' => 'Categoria.nome'));
		$localizacaos = $this->Localizacao->find('list', array('order' => 'Localizacao.local'));
		$this->set(compact('categorias', 'localizacaos'));
	
	}
	function equipamentos_categoria_localizacao_pdf(){
		if($this->data){
			$categoria = $this->Categoria->read(null, $this->data['Relatorio']['categoria_id']);
			$localizacao = $this->Localizacao->read(null, $this->data['Relatorio']['localizacao_id']);
			$conditions = array();
			if(!empty($this->data['Relatorio']['categoria_id']))
				$conditions += array('Equipamento.categoria_id' => $this->data['Relatorio']['categoria_id']);
			if(!empty($this->data['Relatorio']['localizacao_id']))
				$conditions += array('Equipamento.localizacao_id' => $this->data['Relatorio']['localizacao_id']);
						
			$equipamentos = $this->Equipamento->find('all', array(
					'conditions' => $conditions));
	
			$this->set(compact('categoria', 'localizacao', 'equipamentos'));
		}
		$this->layout = 'pdf'; //this will use the pdf.ctp layout
		$this->render();
	}	


public function script_atraso_aluno($id = null) {
	$this->loadModel('Emprestimo');
	$emprestimos = $this->Emprestimo->find('list',  array('conditions' => array ('data_entrega <' => 'NOW()','data_devolucao is null'), 'fields' => array('id')));
	foreach ($emprestimos as $key => $emprestismo){
			
			$data = $this->Emprestimo->read(null, $emprestismo);
			
			//Envio de Email para aluno e professor
			$email = new CakeEmail();
			$email->viewVars(array('data' => $data));
			$email->config('gmail')
			->template('atraso_aluno')
			->emailFormat('html')
			->from(array('sigem@icomp.ufam.edu.br' => 'SIGEM'))
			->subject('[SIGEM] - Notificação de Atraso');
			$email->to($data['Aluno']['email']);			
			$email->send();					
	}
	$this->redirect(array('controller' => 'pages', 'action' => 'sucesso'));
}


public function script_atraso_professor($id = null) {
	$this->loadModel('Emprestimo');
	$professores = $this->Emprestimo->Usuario->find('list',  array('conditions' => array ('perfil_id' => '2','(SELECT count( e.id ) FROM emprestimos e WHERE e.autorizador_id = Usuario.id) >' => '0'), 'fields' => array('id','email')));
	
	foreach ($professores as $key => $professor){

		$data= $this->Emprestimo->find('all',  array('conditions' => array ('autorizador_id' => $key,'data_entrega <' => 'NOW()','data_devolucao is null'), 'fields' => array('id', 'data_inicio', 'data_entrega','aluno_id','(select count(i.id) from itensemprestimos as i where i.emprestimo_id = Emprestimo.id) as itens')));
		
		//$data = $this->Emprestimo->read(null, $emprestismo);
			
		//Envio de Email para aluno e professor
		$email = new CakeEmail();
		$email->viewVars(array('data' => $data));
		$email->config('gmail')
		->template('atraso_professor')
		->emailFormat('html')
		->from(array('sigem@icomp.ufam.edu.br' => 'SIGEM'))
		->subject('[SIGEM] - Notificação de Atraso de Empréstimos');
		$email->to($professor);
		$email->send();
	}
	$this->redirect(array('controller' => 'pages', 'action' => 'sucesso'));
}
}